<?php
/**
 * Description of mysqlpdo: Classe de acesso ao Dado padrão do MySQL
 * @author Leonardo-X64
 */
class MySQLPDO extends PDO {
    const DB_HOST='localhost';
    const DB_PORT='3306';
    const DB_NAME='pdo';
    const DB_USER='pdo';
    const DB_PASS='pdo';
    /**     
     * @param type $options
     * @return null
     */
    public function __construct($options=null){        
        try{            
            parent::__construct('mysql:host='.MySQLPDO::DB_HOST.';port='.MySQLPDO::DB_PORT.';dbname='.MySQLPDO::DB_NAME,
                            MySQLPDO::DB_USER,
                            MySQLPDO::DB_PASS,
                            $options);
        }  catch (PDOException $err){
            echo $err->getMessage();
            return null;
        }
    }
    /**
     * Realiza uma busca segura Livre de SQL Injection
     * @param type $query Ex.: "SELECT * FROM LOGIN WHERE log_user=?",$t1
     * @return type
     */
    public function query($query){  //Consulta segura com Prepare Statement
        $args = func_get_args();    //transforma argumentos em vetor
        array_shift($args);         //array_shift() retira o primeiro elemento(query) do array de argumentos e o retorna
                                    //Ex.: irá restar no array $args apenas $t1 que será passado em execute
        $statm = parent::prepare($query);   //prepara a consulta
        $statm->execute($args);             //executa o statment
        return $statm;                      //retorna o statement
    }    
}
?>